// pages/course_detail/course_datail.js
let app=getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    curId:-1,
    courseInfo:{},
    detailDesc:[],
    qaDesc:[],
    courseTotal:{
      hour:0,
      minute:0,
      second:0
    },
    //收藏内容
      starRecordId:'',
      isStared:'',
    

    // 课程中部导航栏
    centerNavTitle:[
      "课程详情","课程列表","名师介绍","课堂交流","课程评价"
    ],

    //当前选中
    curCenter:0,
    //课程详情内容部分
    centerCourseContent:[
      {
        title:"课程简介",
        content:"这个地方放课程简介这个地方放课程简介这个地方放课程简介这个地方放课程简介这个地方放课程简介这个地方放课程简介这个地方放课程简介这个地方放课程简介这个地方放课程简介这个地方放课程简介这个地方放课程简介这个地方放课程简介这个地方放课程简介这个地方放课程简介"
      },
      {
        title:"适用人群",
        content:"这个地方放适用人群这个地方放适用人群这个地方放适用人群这个地方放适用人群这个地方放适用人群这个地方放适用人群这个地方放适用人群这个地方放适用人群"
      },
      {
        title:"学习收获",
        content:"学习收获，有什么收获呢？学习收获，有什么收获呢？学习收获，有什么收获呢？学习收获，有什么收获呢？学习收获，有什么收获呢？学习收获，有什么收获呢？学习收获，有什么收获呢？学习收获，有什么收获呢？学习收获，有什么收获呢？学习收获，有什么收获呢？学习收获，有什么收获呢？学习收获，有什么收获呢？学习收获，有什么收获呢？学习收获，有什么收获呢？"
      },
      {
        title:"订阅须知",
        content:"来订阅须知\n1.这是须知一\n2.这是须知2\n3.这是须知3\n4.这是须知4\n5.这是须知5"
      }
    ],
    //课堂交流部分导航栏
    comNav:{
      "最新发表":true,
      "最后回复":false,
      "回复数量":false,
    },
    
    // 课程交流数据(回复)
    commuReply: [],
    //课程交流问题
    commuAsk:[],

    //课程列表
    courseList:[],
    //课程评价
    evaluateArr:[]
  },
  //点击收藏课程   点击事件
  starCourse(){

    let isStar= !this.data.isStared;//是否收藏
    let newInfo= this.data.courseInfo;//收藏数量

    //点击收藏
    if(isStar==true){
      newInfo.collectCount+=1;
      this.insertStarRecord();
    }
    else if(isStar==false){//点击取消收藏
      newInfo.collectCount-=1;
      this.deleteStarRecord();
    }
    this.setData({
      isStared: isStar,
      courseInfo: newInfo
    });
    console.log("curId:"+this.data.curId);
    //修改后端课程信息
    this.setCourseData(this.data.courseInfo,"收藏");

  },


  //点击事件 获取当前选中(中间大导航)
  changeCurNum(e){
    let obj = e.currentTarget.dataset;//获取当前数据集
    //响应式改值
    this.setData({
      curCenter: obj.cur//改变当前选择导航值
    })
  },

// 课堂交流导航点击事件   判断点击改变样式，同时对问题进行排序
comNavClick(e) {
  let obj = e.currentTarget.dataset; // 获取当前数据集
  let key = obj.key;

  // 更新 comNav 状态，设置点击项为 true，其他项为 false
  let newComNav = {};
  for (let k in this.data.comNav) {
    newComNav[k] = false; // 先把所有项设置为 false
  }
  newComNav[key] = true; // 设置当前点击的项为 true

  let sendObj={};
  // switch(key){
  //   case 0://最新   时间倒序
  //     sendObj={
  //     pageNum:1,
  //     pageSize:5,
  //   }
  //   break;
  //   case 1://最后回复  回复时间倒序（
  //     sendObj={
  //       pageNum:1,
  //       pageSize:5,
  //       sortBy:'time',
  //       order:'desc'
  //     }
  //     break;
  //   case 2://回复数量
  //     sendObj={
  //       pageNum:1,
  //       pageSize:5,
  //     }
  //     break;
  //   }
    

    // 响应式更新 comNav
    this.setData({
    comNav: newComNav
  });
},


  //计算时分秒
  calculateTime(total) {
    if (typeof total !== 'number' || isNaN(total)) {
      console.error('Invalid total time:', total);
      return { chour: 0, cminute: 0, csecond: 0 };  // 返回默认值
    }
    let chour = Math.floor(total / 3600);
    total %= 3600;
    let cminute = Math.floor(total / 60);
    let csecond = total % 60;
    return { chour, cminute, csecond };
  },

  //修改课程信息
  setCourseData(obj,operate){
    app.requess('chmDemo/course/update','PUT',obj).
    then(res=>{
      let info=res.data

      if(info.code==200 && this.data.isStared==true){
        wx.showToast({
          title: operate+'成功',
        })
       }
       else if(info.code==200 && this.data.isStared==false){
        wx.showToast({
          title: operate+'取消',
        })
       }
    })
  },
  //根据课程id和会员id查找课程收藏  并初始化isStared,
  getStarRecordId(id){
    console.log("当前用户id:"+app.globalData.userInfo.id);
    app.requess('chmDemo/collect/selectAll','GET',
    {
      pageNum:-1,
      pageSize:1,
      courseId:id,
      vipId:app.globalData.userInfo.id
    }).
    then(res=>{
      let info=res.data.data;
      console.log("课程收藏记录")
      console.log(res.data.data);
      // console.log("starRecordId:"+info[0].id)
      //没有记录 未收藏
    if(info==null){
      this.setData({
        isStared:false
      })
      console.log("当前用户未收藏")
    }else{//有记录  已收藏
      this.setData({
        isStared:true,
        starRecordId:info[0].id
      })
      console.log("当前用户已收藏")
    }
    })
  },

  //删除课程收藏记录
  deleteStarRecord(){
    console.log("前id："+this.data.starRecordId);
    if(this.data.starRecordId==''){
      this.getStarRecordId(this.data.curId);//查找当前收藏记录id
    }
    console.log("后id："+this.data.starRecordId);
    let that=this;
    app.requess('chmDemo/collect/delete?id='+that.data.starRecordId,'DELETE',
       null).
       then(res=>{
         let info=res.data;
         if(info.code==200){
           console.log("删除收藏成功");
         }
       })
  },

  //添加课程收藏记录
  insertStarRecord(){
    console.log("courseId:"+this.data.curId);
    console.log("vipId:"+app.globalData.userInfo.id);
    console.log("colTime:"+new Date());
    let that=this;
    app.requess('/collect/insert','POST',
       {
        courseId:that.data.curId,
        vipId:app.globalData.userInfo.id,
        colTime:new Date(),
       }).
       then(res=>{
         let info=res.data;
         if(info.code==200){
           console.log("添加收藏成功");
         }
       })
  },


    //获取课程详情
    getCourseDetail(id){
      app.requess('chmDemo/course/selectId','GET',
      {
        id:id
      }).
      then(res=>{
       //  console.log(res.data);
        let info=res.data.data;
        let total = info.totaltime;
        let durationDay=(info.duration/(3600*24)).toFixed(0);
          // 计算时分秒
          let { chour, cminute, csecond } = this.calculateTime(total);
         //  console.log("durationDay:"+durationDay);
        this.setData({
          //课程详情内容部分
          centerCourseContent:[{
            title:"课程简介",
            content:info.courseIntro
          },
          {
            title:"适用人群",
            content:info.targetUser
          },
          {
           title:"学习收获",
           content:info.learning
         },
         {
           title:"订阅须知",
           content:info.subscriptionNotice
         },
          ],
         courseInfo:{
           ...info,//保留部分
           duration:durationDay,//新增或修改部分
           initPrice:info.initPrice.toFixed(2),
           newPrice:(info.initPrice*info.discount).toFixed(2)
         },
         courseTotal: {
             hour: chour,
             minute: cminute,
             second: csecond
         },
        })
       //  console.log(this.data.courseInfo);
      })
 
    },

    //获取课程列表内容 /courseList/selectByCourseId
    getCourseList(id){
      app.requess('chmDemo/courseList/selectByCourseId','GET',
       {
         courseId:id
       }).
       then(res=>{
        //  console.log("获取课程列表内容");
         
         let info=res.data.data;
        //  console.log(info);
         // 遍历 info，将每一项的 duration 转换为分钟数
        let updatedInfo = info.map(item => {
          return {
            ...item,
            duration: Math.floor(item.duration / 60) // 将秒数转换为分钟数
          };
        });
  
         this.setData({
          courseList:updatedInfo
         })
         wx.hideLoading()
       })
    },

    //获取课程交流  问题内容
       //pageNum与pageSize仅限selectAll支持模糊查询的查询全部
    getCourseAsk(id){
      app.requess('chmDemo/courseAsk/selectAll','GET',
      {
       pageNum:-1,//为负数，不开分页
       pageSize:0,//必填，但pageNum为负数后，随便填
        courseId:id
      }).
      then(res=>{
        // console.log("问题")
        // console.log(res.data)
        let info=res.data.data
       
         // 遍历 commuAsk，每一项添加isCheck属性
       let updatedInfo = info.map(item => {
         return {
           ...item,
           isCheck: false//初始化
         };
       });
       console.log(updatedInfo);
  
        this.setData({
          //课程交流 问题
          commuAsk: updatedInfo
        })
         wx.hideLoading()
       })
    },
    //获取课程评价//通过课程id
    getCourseCom(id){
      app.requess('chmDemo/courseComments/selectAll','GET',
       {
        pageNum:1,
        pageSize:5,
        courseId:id
       }).
       then(res=>{
        //  console.log("评价")
        //  console.log(res.data)
        this.setData({
          evaluateArr: res.data.data.list
        })
         wx.hideLoading()
       })
    },

  //获取数据
    getData(id){
       // 获取课程详情内容
       this.getCourseDetail(id)
       //获取课程列表内容  
       this.getCourseList(id)
       //获取课程交流  问题内容
       this.getCourseAsk(id)
       //获取课程评价
       this.getCourseCom(id)
       //初始化isStared
       this.getStarRecordId(id);
       
    },


 
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log("curId:"+options.id);
    this.setData({
      curId:options.id//获取当前课程id
     }),
    this.getData(options.id)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})